package com.example.codeger.html;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateEngine;
import com.example.config.BeetlIntegrationExample;
import lombok.Builder;
import lombok.Data;
import org.springframework.lang.NonNull;

import java.util.Map;

@Builder
@Data
public class HtmlSourceBuilder {
    private final static String outFileNameDef = "outFileNamedef.html";
    private final static String outFilePathDef = "output/directory/";
    //模板文件路径地址
    @NonNull
    private String templateFilePath;
    //输出的文件路径 /结尾
    private String outFilePath;
    //输出的文件名 带后缀
    private String outFileName;
    //数据
    private Map<String, Object> data;


    public void handler() {
        //获取模板引擎
        TemplateEngine engine = BeetlIntegrationExample.getTemplateEngine();

        // 获取模板
        Template template = engine.getTemplate(this.templateFilePath);
        // 渲染模板
        String result = template.render(this.data);
        // 输出结果
        System.out.println(result);

        // 指定输出文件路径 这样会输出到 target/test-classes下
        String filePath = (StrUtil.isBlank(outFilePath) ? outFilePathDef : outFilePath) + (StrUtil.isBlank(
                outFileName) ? outFileNameDef : outFileName);


        // 使用 Hutool 的 FileUtil 将内容写入文件
        FileUtil.writeUtf8String(result, filePath);

    }

}